using System;
using System.Xml.Serialization;
using System.Collections.Generic;
using System.Globalization;

namespace org.nativeinstruments.nml
{
	
	public class COLLECTIONENTRY
	{
		// ATTRIBUTES
		[XmlAttribute("MODIFIED_DATE")]
		public string MODIFIED_DATE { get; set; }
		
		[XmlIgnore]
		public int? MODIFIED_TIME { get; set; }
		[XmlAttribute("MODIFIED_TIME")]
		public string MODIFIED_TIMEString
		{
			get { return MODIFIED_TIME==null ? null : MODIFIED_TIME.Value.ToString(CultureInfo.InvariantCulture); }
			set
			{
				if (String.IsNullOrWhiteSpace(value)) MODIFIED_TIME = null;
				else MODIFIED_TIME = int.Parse(value);
			}
		}
		
		[XmlAttribute("AUDIO_ID")]
		public string AUDIO_ID { get; set; }
		
		[XmlAttribute("TITLE")]
		public string TITLE { get; set; }
		
		[XmlAttribute("ARTIST")]
		public string ARTIST { get; set; }
		
		// ELEMENTS
		[XmlElement("LOCATION")]
		public LOCATION LOCATION { get; set; }
		
		[XmlElement("ALBUM")]
		public ALBUM ALBUM { get; set; }
		
		[XmlElement("MODIFICATION_INFO")]
		public MODIFICATION_INFO MODIFICATION_INFO { get; set; }
		
		[XmlElement("INFO")]
		public INFO INFO { get; set; }
		
		[XmlElement("TEMPO")]
		public TEMPO TEMPO { get; set; }
		
		[XmlElement("LOUDNESS")]
		public LOUDNESS LOUDNESS { get; set; }
		
		[XmlElement("MUSICAL_KEY")]
		public MUSICAL_KEY MUSICAL_KEY { get; set; }
		
		[XmlElement("CUE_V2")]
		public List<CUE_V2> CUE_V2 { get; set; }
		
		// CONSTRUCTOR
		public COLLECTIONENTRY()
		{}
	}
}
